package a2025_03_16;

import java.util.LinkedList;
import java.util.Queue;

//class Solution {
//
//    //边权为1的最短路问题
//    int[] dr=new int[]{1,-1,0,0};
//    int[] dc=new int[]{0,0,1,-1};
//
//    public int nearestExit(char[][] maze, int[] e) {
//        int m=maze.length;
//        int n=maze[0].length;
//        //因为没有修改，所以要标志位true，防止再次访问
//        boolean[][] visit=new boolean[m][n];
//        Queue<int[]> queue=new LinkedList<>();
//        queue.add(new int[]{e[0],e[1]});
//        visit[e[0]][e[1]]=true;
//
//        int step=0;
//        while(!queue.isEmpty()){
//            int sz=queue.size();
//            //开始新的一轮的bfs
//            step++;
//            for(int i=0;i<sz;i++){
//                int[] temp=queue.poll();
//                int a=temp[0];
//                int b=temp[1];
//                for(int j=0;j<4;j++){
//                    int r=a+dr[j];
//                    int c=b+dc[j];
//                    if(r>=0&&r<m&&c>=0&&c<n&&maze[r][c]=='.'&&!visit[r][c]){
//                        //一定是在外扩的循环中找到出口
//                        if(r==0||r==m-1||c==0||c==n-1) return step;
//                        queue.add(new int[]{r,c});
//                        visit[r][c]=true;
//                    }
//                }
//            }
//        }
//        return -1;
//    }
//}
